#include "LuaPrec.h"

LuaCheckStack::LuaCheckStack(CLua* L,int add)
	:Lua(L)
{
	StartStack = Lua->GetStackTop();
	StartStack+=add;
}

LuaCheckStack::~LuaCheckStack()
{
	int EndStack = Lua->GetStackTop();
	if(StartStack!=EndStack)
	{
		CLuaPrint::LuaError(ELR_STACKNOBANLENCE);
		LUAASSERT(false);
	}
}

CLua::CLua(void)
{
	InitLua();
}

CLua::~CLua(void)
{
	ReleaseLua();
}

void CLua::InitLua()
{
	mLuaState=luaL_newstate();
}

void CLua::ReleaseLua()
{
	lua_close(mLuaState);
}

bool CLua::LoadFile(char *filename)
{
	if(luaL_loadfile(mLuaState,filename)||lua_pcall(mLuaState,0,0,0))
	{
		const char* err = ToString(-1);
		err=err;
		return false;
	}
	return true;
}

